/**
 * vCf[^̃Rf[^쐬
 */
function CreatePlayDataArea(){
	let players = [ "Sunny", "Luna", "Star" ];
	let difficults = [ "Easy", "Normal", "Panic" ];
	//EX4A0̓vC
	let stages = [ "0", "1", "2", "3", "4" ];
	
	//f[^쐬
	ascent( i in 0..length( players ) ){
		ascent( j in 0..length( difficults ) ){
			ascent( k in 0..length( stages ) ){
				let ns = players[ i ] ~ "PlayNum" ~ difficults[ j ] ~ stages[ k ];
				SetCommonDataEx( "OFT_Save", ns, 0 );
			}
		}
	}
	
	//vC
	SetCommonDataEx( "OFT_Save", "PlayTime_H", 0 );
	SetCommonDataEx( "OFT_Save", "PlayTime_M", 0 );
	SetCommonDataEx( "OFT_Save", "PlayTime_S", 0 );
	
	//NA
	SetCommonDataEx( "OFT_Save", "SunnyClearNum", 0 );
	SetCommonDataEx( "OFT_Save", "LunaClearNum", 0 );
	SetCommonDataEx( "OFT_Save", "StarClearNum", 0 );
	
	//m[RNA
	SetCommonDataEx( "OFT_Save", "SunnyNoContinueClearNum", 0 );
	SetCommonDataEx( "OFT_Save", "LunaNoContinueClearNum", 0 );
	SetCommonDataEx( "OFT_Save", "StarNoContinueClearNum", 0 );
}

/**
 * Xe[WvC񐔂ǉ
 * 
 * @param {String} player    vC[
 * @param {String} difficult Փx
 * @param {String} stage     Xe[W(EX4A0̓vC)
 */
function AddStagePlayNum( player, difficult, stage ){
	let ns = player ~ "PlayNum" ~ difficult ~ stage;
	let num = GetCommonDataDefaultEx( "OFT_Save", ns, 0 );
	num += 1;
	SetCommonDataEx( "OFT_Save", ns, num );
}

/**
 * NA񐔂ǉ
 * 
 * @param {String}  player     vC[
 * @param {String}  difficult  Փx
 * @param {Boolean} nocontinue m[Rǂ
 */
function AddClearNum( player, difficult, nocontinue ){
	let ns_clear = player ~ "ClearNum";
	let ns_ncclear = player ~ "NoContinueClearNum";
	let num = 0;
	
	//ʏNA
	num = GetCommonDataDefaultEx( "OFT_Save", ns_clear, 0 );
	num += 1;
	SetCommonDataEx( "OFT_Save", ns_clear, num );
	
	if( nocontinue ){
		//m[RNA
		num = GetCommonDataDefaultEx( "OFT_Save", ns_ncclear, 0 );
		num += 1;
		SetCommonDataEx( "OFT_Save", ns_ncclear, num );
	}
}

/**
 * vCԊǗ^XN
 */
task PlayTimeTask(){
	PlayTime_H = GetCommonDataDefaultEx( "OFT_Save", "PlayTime_H", 0 );
	PlayTime_M = GetCommonDataDefaultEx( "OFT_Save", "PlayTime_M", 0 );
	PlayTime_S = GetCommonDataDefaultEx( "OFT_Save", "PlayTime_S", 0 );
	
	let count = 0;
	let countnext = 60;
	let secondnext = 60;
	let minutenext = 60;
	
	loop{
		yield;
		count += 1;
		if( count >= countnext ){
			count -= countnext;
			PlayTime_S += 1;
			if( PlayTime_S >= secondnext ){
				PlayTime_S -= secondnext;
				PlayTime_M += 1;
				if( PlayTime_M >= minutenext ){
					PlayTime_M -= minutenext;
					PlayTime_H += 1;
				}
			}
		}
	}
}

/**
 * vCԃZ[u^XN
 */
function SavePlayTime(){
	SetCommonDataEx( "OFT_Save", "PlayTime_H", PlayTime_H );
	SetCommonDataEx( "OFT_Save", "PlayTime_M", PlayTime_M );
	SetCommonDataEx( "OFT_Save", "PlayTime_S", PlayTime_S );
}
